#include<iostream>
#include<vector>
#include<array>
#include"String.h"
using std::vector;
using std::array;


void test_01()
{

	struct Point
	{
		int x;
		int y;
	};

	int a = 1;
	int a1 = { 1 };
	int a2{ 1 };

	int arr[]{ 1,2,3,4 };

	Point p1 = { 1,1 };
	Point p2{ 1,1 };

	auto e = { 1,2,3,4,5,6,7 };
	cout << typeid(e).name() << endl;

}

void test_02()
{
	auto a = new int(1);
	auto b = &a;


	int x = 10;
	double y = 2.8;


}

void test_03()
{
	int arr[] = { 1,2,3,4,5,6,7 };
	for (auto e : arr)
	{
		cout << e << endl;
	}

	vector<int> v = { 1,2,3,4,5,6,7,8,8 };
	for (auto e : v)
	{
		cout << e << endl;
	}

	int arr1[10] = { 0 };
	array<int, 10> a2{ 0 };

}

void test_04()
{
	const char* arr = "hello world";

	int a = 10;
	int& b = a;
	int* p = new int(1);
	int*& pp = p;

	double x = 1.8, y = 2.3;
	double&& sum = x + y;

	const int& a1 = 10;
}


using namespace cfl;
string Test()
{
	string ret("hello world");

	return ret;
}

void test_05()
{
	list<string> l;
	l.push_back(Test());

}


template<typename T>
void Func(T&& val)
{
	cout << val << endl;
}

void Func1(int&& val)
{
	cout << val << endl;
}

int main()
{
	//test_01();
	//test_02();
	//test_03();
	//test_04();
	test_05();
	return 0;
}


